 $ type sys$system:startup.ins

$ !     'F$VERIFY(0)
$ !
$ !     STARTUP.INS -- Complete installation of VAX/VMS Version 4.6
$ !
$ ! FUNCTIONAL DESCRIPTION:
$ !     This captive command procedure is run instead of the normal STARTUP.COM
$ !     after standalone backup has been used to restore the REQUIRED
$ !     file set to the system disk.  The system disk is then booted, and
$ !     this command procedure is activated to complete the installation of
$ !     the library and optional save sets.
$ !
$ ! INPUTS:
$ !     None.  The device which contains the kit media is prompted for by this
$ !     procedure.
$ !
$START:
$       SAY = "WRITE SYS$OUTPUT"
$       SET NOON
$       SET DEFAULT SYS$SYSTEM
$       SET UIC [1,4]
$ !
$ ! Perform upgrade-startup.  Does not install any images or autoconfigure
$ ! and exits rather than LOGOUT
$ !
$       @SYS$SYSTEM:STARTUP UPGRADE
$       RUN SYS$SYSTEM:INSTALL
SYS$SHARE:DISMNTSHR     /OPEN /SHARED /PROTECT /HEADER /NOPURGE
SYS$SHARE:MOUNTSHR      /OPEN /SHARED /PROTECT /HEADER
SYS$SHARE:SECURESHR     /OPEN /SHARED /PROTECT /HEADER
$       DEFINE SYS$ERROR NL:
$       DEFINE SYS$OUTPUT NL:
$       STOP ERRFMT
$       STOP OPCOM
$       DEASSIGN SYS$ERROR
$       DEASSIGN SYS$OUTPUT
$       IF F$SEARCH("SYS$ERRORLOG:ERRLOG.SYS") .NES. "" THEN -
                        DELETE SYS$ERRORLOG:ERRLOG.SYS;*
$       IF F$SEARCH("SYS$MANAGER:OPERATOR.LOG") .NES. "" THEN -
                        DELETE SYS$MANAGER:OPERATOR.LOG;*
$ !
$ ! Initialize local values
$ !
$       OPA0 = F$TRNLNM("SYS$OUTPUT") - "_" - "_"
$       OPEN /READ BOOT$INPUT 'OPA0'
$       SET PROTECTION=(S:RWED,G:RWED,O:RWED,W:RE) /DEFAULT
$       INSTALLED = 0
$       KIT_DOCROOT = 0
$       KIT_DOTLR = 0
$       SCSSYSTEMID = 0
$       SCSNODE = ""
$ !
$ ! Set the system time
$ !
$SET_TIME:
$       READ /END_OF_FILE=SET_TIME BOOT$INPUT TIME -
                /PROMPT="Please enter the date and time (DD-MMM-YYYY HH:MM): "
$       TIME := 'TIME
$       IF TIME .EQS. "" THEN GOTO SET_TIME
$       SAY ""
$       SPACE_LOC = F$LOCATE (" ", TIME)
$       IF SPACE_LOC .NE. F$LENGTH (TIME) THEN -
                TIME[SPACE_LOC, 1] := ":"
$       SET TIME='TIME'
$       IF .NOT. $STATUS THEN GOTO SET_TIME
$ !
$ ! Set up some special system files
$ !
$       IF F$SEARCH ("SYS$SYSTEM:SYSUAF.DAT") .EQS. "" THEN -
           COPY SYS$SYSTEM:SYSUAF.RL2 SYS$SYSTEM:SYSUAF.DAT
$       SYSGEN = "$SYSGEN"
$       SYSGEN AUTOCONFIGURE ALL
$ !
$ ! Check for unsupported RL02 system disk
$ !
$       DEVTYPE = F$GETDVI("SYS$SYSDEVICE","DEVTYPE")
$       DEVCLSS = F$GETDVI("SYS$SYSDEVICE","DEVCLASS")
$       IF DEVCLSS .EQ. 2 THEN GOTO GET_KIT             ! Support for TK50
$       IF (DEVTYPE .NE. 10) .AND. (DEVTYPE .NE. 18) THEN GOTO GET_KIT
$       SAY "RL02 as system disk is no longer supported by VMS"
$       GOTO HALT
$ !
$ ! Locate the distribution kit
$ !
$GET_KIT:
$       SET NOON
$       READ /END_OF_FILE=GET_KIT BOOT$INPUT KIT -
                /PROMPT="Enter drive holding distribution kit (DDCU): "
$       CNT = 4
$       KIT := 'KIT'
$       IF KIT .EQS. "" THEN GOTO GET_KIT
$       IF KIT .EQS. "EXIT" THEN GOTO LOGOUT
$       KIT = KIT - ":" + ":"
$CONN_DEV:
$       IF F$GETDVI (KIT, "EXISTS") THEN GOTO MNT_KIT
$       WAIT 00:01:30
$       IF F$GETDVI (KIT, "EXISTS") THEN GOTO MNT_KIT
$       IF F$LOC ("$MU", KIT) .EQ. F$LEN (KIT) THEN GOTO NOSUCHDEV
$       MNTDEV = F$EXTRACT(0, F$LOC ("$MU", KIT), KIT) + "$MUA0"
$       SYSGEN CONNECT 'MNTDEV' /NOADAPTER /DRIVER=TUDRIVER
$       GOTO TRY_CONFIG
$NOSUCHDEV:
$       IF F$LOC ("$DU", KIT) .EQ. F$LEN (KIT) THEN GOTO NOSUCHDEV0
$       MNTDEV = F$EXTRACT(0, F$LOC ("$DU", KIT), KIT) + "$DUA0"
$       SYSGEN CONNECT 'MNTDEV' /NOADAPTER /DRIVER=DUDRIVER
$       GOTO TRY_CONFIG
$NOSUCHDEV0:
$       IF F$LOC ("$DJ", KIT) .EQ. F$LEN (KIT) THEN GOTO NOSUCHDEV1
$       MNTDEV = F$EXTRACT(0, F$LOC ("$DJ", KIT), KIT) + "$DJA0"
$       SYSGEN CONNECT 'MNTDEV' /NOADAPTER /DRIVER=DUDRIVER
$TRY_CONFIG:
$       WAIT 00:01:30
$       IF F$GETDVI (KIT, "EXISTS") THEN GOTO MNT_KIT
$       CNT = CNT - 1
$       SAY "Trying to configure the distribution device.  ''CNT' tries left."
$       IF CNT .EQ. 0 THEN GOTO NOSUCHDEV1
$       GOTO CONN_DEV
$NOSUCHDEV1:
$       IF (F$LOC ("MU", KIT) .EQ. F$LEN (KIT)) .AND. -
           (F$LOC ("DU", KIT) .EQ. F$LEN (KIT)) .AND. -
           (F$LOC ("DJ", KIT) .EQ. F$LEN (KIT)) THEN GOTO NSD
$       IF (F$GETSYI("CPU") .EQ. 7) .OR. (F$GETSYI("CPU") .EQ. 8) THEN GOTO NSD
$       SAY "If your kit is on an HSC device then you must use the HSC node name"
$       SAY "in the device name, as in HSC001$DJA1:"
$       GOTO GET_KIT
$NSD:
$       SAY "No such device as ''KIT'"
$       GOTO GET_KIT
$MNT_KIT:
$       ON ERROR THEN GOTO GET_KIT
$       SET ON
$       TARGET = F$LOGICAL("SYS$SYSDEVICE")
$       IF (F$EXTRACT(0,1,TARGET) .EQS. "_") THEN -
          TARGET = F$EXTRACT(1,F$LENGTH(TARGET),TARGET)
$       IF (F$EXTRACT(0,1,TARGET) .EQS. "_") THEN -
          TARGET = F$EXTRACT(1,F$LENGTH(TARGET),TARGET)
$       KIT = F$GETDVI(KIT,"DEVNAM")
$       IF (F$EXTRACT(0,1,KIT) .EQS. "_") THEN -
          KIT = F$EXTRACT(1,F$LENGTH(KIT),KIT)
$       IF (F$EXTRACT(0,1,KIT) .EQS. "_") THEN -
          KIT = F$EXTRACT(1,F$LENGTH(KIT),KIT)
$       Kit_Class = F$GETDVI(KIT,"DEVCLASS")    ! 1=disk, 2=tape
$       INS$MOUNT = "MOUNT /NOWRITE /NOASSIST /FOREIGN"
$       IF Kit_Class .EQ. 1 THEN INS$MOUNT = "MOUNT /NOWRITE /NOASSIST /OVER=ID"
$! 
$!      If RL02 distribution kit, then mount disk as FOREIGN
$!
$       IF (F$GETDVI(KIT,"DEVTYPE") .EQ. 10) THEN INS$MOUNT = -
          "MOUNT /OVER=ID /NOWRITE /NOASSIST /FOREIGN"
$!
$!      Check to see if the kit with the upgrade is the system disk and if
$!      if it no nedd to remount the device.
$!
$       IF TARGET .EQS. KIT THEN GOTO NO_MOUNT
$       IF F$GETDVI(KIT,"MNT") THEN DISMOUNT /NOUNLOAD 'KIT'
$       INS$MOUNT 'KIT'
$NO_MOUNT:
$       IF F$GETDVI("PA","EXISTS") THEN GOTO ASK_CROOT
$       T1 = F$GETDVI("SYS$SYSDEVICE","MAXBLOCK")
$       IF "''TLR$MAXBLOCK'" .EQS. "" THEN TLR$MAXBLOCK = 70000
$       IF T1 .GE. TLR$MAXBLOCK THEN GOTO ASK_CROOT
$       TYPE SYS$INPUT

You have the option of running a tailored VAX/VMS system.

Tailoring lets you  remove VAX/VMS files you do not need in your normal
operations. While tailoring your system disk, you need a disk drive for 
the system disk and a disk drive for the library disk. The library disk 
only has to be mounted for tailoring operations, for installing VAX/VMS 
optional products or for doing maintenance updates. The library disk must 
be larger than 20,000 blocks.

If you intend to  install optional  products from distribution media that 
conflicts with  your use of the library disk, do not select the tailoring 
option. For example, with a dual-RK07  system you cannot install optional 
products from an RK07 distribution disk.

The installation procedure will not restore the OPTIONAL saveset if the 
library disk is less than 25,000 blocks.
$ASK_TO_TAILOR:
$       SAY ""
$       READ /END=ASK_TO_TAILOR BOOT$INPUT YN -
         /PROMPT="Do you want this installation to produce a tailored system [N]? "
$       IF YN .EQS. "" THEN YN = "N"
$       IF .NOT. YN THEN GOTO NORMAL
$       KIT_DOTLR = 1
$GET_LIB_DISK:
$       READ /END=GET_LIB_DISK BOOT$INPUT LIB_DISK -
                /PROMPT="In which drive will you mount the library disk? "
$       IF LIB_DISK .EQS. "" THEN GOTO GET_LIB_DISK
$       LIB_DISK = LIB_DISK - ":" + ":"
$       IF .NOT. F$GETDVI(LIB_DISK,"EXISTS") THEN GOTO LIB_NOT_EXIST 
$       LIB_DISK = F$GETDVI(LIB_DISK,"DEVNAM")
$       IF (F$EXTRACT(0,1,LIB_DISK) .EQS. "_") THEN -
          LIB_DISK = F$EXTRACT(1,F$LENGTH(LIB_DISK),LIB_DISK)
$       IF (F$EXTRACT(0,1,LIB_DISK) .EQS. "_") THEN -
          LIB_DISK = F$EXTRACT(1,F$LENGTH(LIB_DISK),LIB_DISK)
$ CHECK_MAX:
$       MAX = F$GETDVI(LIB_DISK,"MAXBLOCK")
$       IF (F$GETDVI(LIB_DISK,"MAXBLOCK") .LT. 20000) .AND. (MAX .GT. 0) THEN GOTO LIB_TOO_SMALL
$       IF MAX .EQ. 0 THEN MOUNT/FOR/NOASSIS 'LIB_DISK' VAXVMSLB4
$       IF MAX .EQ. 0 THEN GOTO CHECK_MAX
$       GOTO DO_TAILORED
$LIB_NOT_EXIST:
$       SAY "Device ''LIB_DISK' does not exist."
$       GOTO GET_LIB_DISK
$LIB_TOO_SMALL:
$       SAY "Disk ''LIB_DISK' has less than 20000 blocks."
$       GOTO GET_LIB_DISK
$ASK_CROOT:
$       TYPE SYS$INPUT
If this node is part of a cluster, you may want to set up
your system disk to run multiple cluster nodes from a single disk.

$       READ /END=ASK_CROOT BOOT$INPUT YN -
         /PROMPT="Do you want to know more about cluster system disks [N]? "
$       IF YN .EQS. "" THEN YN = "N"
$       IF .NOT. YN THEN GOTO ASK_CR2
$       TYPE SYS$INPUT:

In a cluster, you can run multiple systems with up to 14 nodes sharing
all files except PAGEFILE.SYS, SWAPFILE.SYS, SYSDUMP.DMP and VAXVMSSYS.PAR.

$ASK_CR2:
$       READ /END=ASK_CR2 BOOT$INPUT YN -
         /PROMPT="Do you want to generate a cluster common system disk [N]? "
$       IF YN .EQS. "" THEN YN = "N"
$       IF .NOT. YN THEN GOTO NORMAL
$       KIT_DOCROOT = 1
$END_ASK_CR:
$       TYPE SYS$INPUT:

In order to successfully boot the system, you must provide a nonzero value
for the SYSGEN parameter SCSSYSTEMID and a nonblank value for the SYSGEN
parameter SCSNODE.  See the Guide to VAXclusters for information on
setting up other SYSGEN parameters after the system is installed. 

$GET_VALUE:
$       READ /END=GET_VALUE BOOT$INPUT SCSSYSTEMID -
         /PROMPT="Enter this node's SCSSYSTEMID value: "
$       IF SCSSYSTEMID .EQ. 0 THEN GOTO GET_VALUE
$GET_VALUE2:
$       READ /END=GET_VALUE2 BOOT$INPUT SCSNODE -
        /PROMPT="Enter this node's SCSNODE name: "
$       IF SCSNODE .EQS. "" THEN GOTO GET_VALUE2
$NORMAL:
$       IF Kit_Class .EQ. 2 THEN GOTO RESTORE_LIB       ! Outrule TK50s
$       IF (F$GETDVI(KIT,"DEVTYPE") .EQ. 10) .OR. -
           (F$GETDVI(KIT,"DEVTYPE") .EQ. 18) THEN GOTO NORMAL_RL02
$RESTORE_LIB:
$ !
$ ! Restore LIB saveset.  Use BACKUP/REPLACE for restartability.
$ !
$       ON ERROR THEN GOTO RESTORE_LIB
$BACKUP_LIB:
$       SAY ""
$       SAY "Restoring library saveset."
$       BACKUP /REPLACE /VERIFY -
                'KIT'[000000]LIBRARY /SAVE_SET  SYS$SYSDEVICE:[*...]
$ !
$ ! Check to see if the optional saveset is present.  If so, then
$ ! install it.
$ !
$       IF Kit_Class .EQ. 2 THEN GOTO RESTORE_OPT   ! Assume present on magtape
$       IF F$SEARCH ("''KIT'[000000]OPTIONAL") .NES. "" THEN GOTO RESTORE_OPT
$       SAY "OPTIONAL save set not found on kit.  It will not be installed."
$       GOTO NORMAL_DONE
$ !
$ ! Restore OPT saveset.  Use /REPLACE for restartability.
$ !
$RESTORE_OPT:
$       ON ERROR THEN GOTO RESTORE_OPT
$       SAY ""
$       SAY "Restoring optional saveset."
$       BACKUP /REPLACE /VERIFY -
                'KIT'[000000]OPTIONAL /SAVE_SET SYS$SYSDEVICE:[*...]
$       GOTO NORMAL_DONE
$NORMAL_RL02:
$ !
$ ! Restore OPT saveset.  Use /REPLACE for restartability.
$ !
$RESTORE_RL02OPT:
$       ON ERROR THEN GOTO RESTORE_RL02OPT
$       SAY ""
$       SAY "Restoring optional saveset."
$       BACKUP /REPLACE /VERIFY -
                'KIT'[000000]OPTIONAL /SAVE_SET SYS$SYSDEVICE:[*...]
$       DISMOUNT/NOUNLOAD 'KIT'
$       SAY ""
$       SAY "Please replace the distribution disk labeled REQUIRED RL2 #1 with"
$       SAY "the disk labeled LIBRARY RL2 #2."
$ASK_RESLIB:
$       READ /END=ASK_RESLIB BOOT$INPUT YN -
        /PROMPT = "Is the disk labeled LIBRARY RL2 #2 ready to be mounted [N]?"
$       If (YN .EQS. "") Then YN = "N"
$       If .NOT. YN Then Goto Ask_Reslib
$       MOUNT/OVER=ID/NOASSIST/FOREIGN 'KIT'
$RESTORE_RL02LIB:
$ !
$ ! Restore LIB saveset.  Use BACKUP/REPLACE for restartability.
$ !
$       ON ERROR THEN GOTO RESTORE_RL02LIB
$BACKUP_LIB:
$       SAY ""
$       SAY "Restoring library saveset."
$       SAY "    -- please place the second library disk in ''KIT' when"
$       SAY "       requested to do so."
$       ASSIGN 'OPA0 SYS$COMMAND /NOLOG         ! Tell BACKUP we are a terminal
$       BACKUP /REPLACE /VERIFY -
                'KIT'[000000]LIBRARY /SAVE_SET  SYS$SYSDEVICE:[*...]
$       DISMOUNT/NOUNLOAD 'KIT'
$NORMAL_DONE:
$       SET NOON
$       IF .NOT. KIT_DOCROOT THEN GOTO DONE2
$       SAY ""
$       SAY "Creating [V4COMMON] directory tree."
$       RUN SYS$SYSTEM:INSTALL
SYS$SHARE:DISMNTSHR     /DELETE
SYS$SHARE:MOUNTSHR      /DELETE
SYS$SHARE:SECURESHR     /DELETE
$       SD = F$GETDVI("SYS$SYSDEVICE","DEVNAM")
$       DEFINE /SYSTEM/EXEC /TRAN=(CONCEAL,TERMINAL) SYS$COMMON 'SD'[V4COMMON.]
$       DEFINE /SYSTEM /EXEC /TRAN=(CONCEAL,TERMINAL) SYS$SYSROOT -
                        'SD'[SYS0.],'SD'[V4COMMON.]
$       RENAME 'SD'[0,0]SYS0.DIR V4COMMON
$       CD = "CREATE/DIR/PROT=(S=RWE,O=RWE,G=RWE,W=RE) ''SD'[SYS0"
$       'CD']                   !Create SYS0 directory
$       'CD'.SYSEXE]
$       'CD'.SYSLIB]
$       SET FILE /ENTER='SD'[SYS0]SYSCOMMON.DIR -
                        'SD'[0,0]V4COMMON.DIR;
$       'CD'.SYSTEST]
$       'CD'.SYSMAINT]
$       'CD'.SYSMGR]
$       'CD'.SYSHLP]
$       'CD'.SYSHLP.EXAMPLES]
$       'CD'.SYSUPD]
$       'CD'.SYSMSG]
$       'CD'.SYSERR]
$       'CD'.SYSCBI]
$       DEFINE /SYSTEM/EXEC /TRAN=(CONCEAL,TERMINAL) SYS$COMMON -
                        'SD'[SYS0.SYSCOMMON.]
$       IF F$SEARCH("''SD'[V4COMMON.SYSEXE]SWAPFILE.SYS") .NES. "" -
                THEN RENAME 'SD'[V4COMMON.SYSEXE]SWAPFILE.SYS -
                                'SD'[SYS0.SYSEXE]
$       IF F$SEARCH("''SD'[V4COMMON.SYSEXE]PAGEFILE.SYS") .NES. "" -
                THEN RENAME 'SD'[V4COMMON.SYSEXE]PAGEFILE.SYS -
                                'SD'[SYS0.SYSEXE]
$       IF F$SEARCH("''SD'[V4COMMON.SYSEXE]SYSDUMP.DMP") .NES. "" -
                THEN RENAME 'SD'[V4COMMON.SYSEXE]SYSDUMP.DMP -
                                'SD'[SYS0.SYSEXE]
$       IF F$SEARCH("''SD'[V4COMMON.SYSEXE]VAXVMSSYS.PAR") .NES. "" -
                THEN COPY 'SD'[V4COMMON.SYSEXE]VAXVMSSYS.PAR -
                                 'SD'[SYS0.SYSEXE]
$       RUN SYS$SYSTEM:INSTALL
SYS$SHARE:DISMNTSHR     /OPEN /SHARED /PROTECT /HEADER /NOPURGE
SYS$SHARE:MOUNTSHR      /OPEN /SHARED /PROTECT /HEADER
SYS$SHARE:SECURESHR     /OPEN /SHARED /PROTECT /HEADER
$       If F$Search("SYS$COMMON:[SYSMGR]ACCOUNTNG.DAT;*") .NES. "" Then -
                RENAME SYS$COMMON:[SYSMGR]ACCOUNTNG.DAT;* SYS$SPECIFIC:[SYSMGR]
$       If F$Search("SYS$COMMON:[SYSMGR]OPERATOR.LOG;*") .NES. "" Then -
                RENAME SYS$COMMON:[SYSMGR]OPERATOR.LOG;* SYS$SPECIFIC:[SYSMGR]
$DONE2:
$       INSTALLED = 1
$! 
$!      Check to see if the kit with the upgrade is the system disk and if
$!      if it is don't dismount it.
$!
$       IF TARGET .NES. KIT THEN -
                IF F$GETDVI(KIT,"MNT") THEN DISMOUNT /NOUNLOAD 'KIT'
$       IF .NOT. INSTALLED THEN GOTO HALT
$       GOTO CHANGE_PWDS
$ !
$ ! Install tailored system
$ !
$DO_TAILORED:
$       IF KIT .NES. LIB_DISK THEN GOTO TAILOR_DIF_KIT_LIB
$       ON ERROR THEN GOTO DO_TAILORED
$       SAY ""
$       SAY "Copying LIBRARY saveset file to system disk."
$       IF F$SEARCH("SYS$SYSDEVICE:[0,0]LIBRARY.;") .NES. "" -
                THEN DELETE SYS$SYSDEVICE:[0,0]LIBRARY.;*
$       COPY 'KIT'[0,0]LIBRARY. SYS$SYSDEVICE:[0,0]
$       IF F$GETDVI(LIB_DISK,"MAXBLOCK") .GT. 25000 THEN GOTO CK_OPT_SAME
$       SAY ""
$       SAY "Library disk has less than 25000 blocks, OPTIONAL saveset not restored."
$       GOTO TAILOR_OPTDONE
$CK_OPT_SAME:
$       IF Kit_Class .EQ. 2 THEN GOTO TAILOR_OPTQUERY   ! Assume on magtape
$       IF F$SEARCH ("''KIT'[000000]OPTIONAL") .EQS. "" THEN GOTO TAILOR_OPTDONE
$TAILOR_OPTQUERY:
$       ON ERROR THEN GOTO TAILOR_OPTQUERY
$       SAY ""
$       READ BOOT$INPUT OPTIONAL /END=TAILOR_OPTQUERY -
                /PROMPT="Do you wish to install the OPTIONAL distribution saveset [No]? "
$       SAY ""
$       OPTIONAL := 'OPTIONAL'
$       IF .NOT. OPTIONAL THEN GOTO TAILOR_OPTDONE
$ !
$ ! Copy the OPTIONAL saveset as a file from the kit to the system disk
$ !
$       IF F$SEARCH("SYS$SYSDEVICE:[0,0]OPTIONAL") .NES. "" -
                THEN DELETE SYS$SYSDEVICE:[0,0]OPTIONAL.;*
$       SAY ""
$       SAY "Copying OPTIONAL saveset file to system disk."
$       COPY 'KIT'[0,0]OPTIONAL.        SYS$SYSDEVICE:[0,0]
$TAILOR_OPTDONE:
$       SET NOON
$       DISMOUNT 'KIT'
$       SAY ""
$       SAY "Remove the distribution kit from ''KIT'."
$       SAY ""
$TAILOR_WAIT_FOR_SCRATCH:
$       ON ERROR THEN GOTO TAILOR_WAIT_FOR_SCRATCH
$       IF F$GETDVI(KIT,"MNT") THEN DISMOUNT /NOUNLOAD 'KIT'
$       SAY "Mount a scratch pack in drive ''KIT'."
$       SAY "Ensure it is scratch as it will be initialized."
$       SAY ""
$       READ /END_OF_FILE=TAILOR_WAIT_FOR_SCRATCH BOOT$INPUT YN -
                /PROMPT="Are you ready to continue? "
$       IF .NOT. YN THEN GOTO TAILOR_WAIT_FOR_SCRATCH
$       MOUNT /FOREIGN /NOASSIST 'KIT' VAXVMSLB4
$       SAY ""
$       SAY "Restoring LIBRARY saveset to library disk."
$       BACKUP /VERIFY SYS$SYSDEVICE:[0,0]LIBRARY /SAVE_SET 'KIT' /IMAGE /INITIALIZE
$       IF F$SEARCH("SYS$SYSDEVICE:[0,0]OPTIONAL") .EQS. "" THEN GOTO TAILOR_RESTR_DONE
$       DISMOUNT /NOUNLOAD 'KIT'
$       MOUNT /NOASSIST 'KIT' VAXVMSLB4
$       SAY ""
$       SAY "Restoring OPTIONAL saveset to library disk."
$       BACKUP /REPLACE /VERIFY-
                SYS$SYSDEVICE:[0,0]OPTIONAL /SAVE_SET 'KIT'[*...]
$TAILOR_RESTR_DONE:
$       SET NOON
$       IF F$SEARCH("SYS$SYSDEVICE:[0,0]LIBRARY") .NES. "" THEN -
                DELETE SYS$SYSDEVICE:[0,0]LIBRARY.*;*
$       IF F$SEARCH("SYS$SYSDEVICE:[0,0]OPTIONAL") .NES. "" THEN -
                DELETE SYS$SYSDEVICE:[0,0]OPTIONAL.*;*
$       DISMOUNT /NOUNLOAD 'KIT'
$       GOTO MNT_LIB_DISK                       !Default tailoring and exit
$TAILOR_DIF_KIT_LIB:
$TDIF_WAIT_FOR_SCRATCH:
$       ON ERROR THEN GOTO TDIF_WAIT_FOR_SCRATCH
$       IF F$GETDVI(LIB_DISK,"MNT") THEN DISMOUNT /NOUNLOAD 'LIB_DISK'
$       SAY "Mount a scratch pack in drive ''LIB_DISK'."
$       SAY "Ensure it is scratch as it will be initialized."
$       SAY ""
$       READ /END_OF_FILE=TDIF_WAIT_FOR_SCRATCH BOOT$INPUT YN -
                /PROMPT="Are you ready to continue? "
$       IF .NOT. YN THEN GOTO TDIF_WAIT_FOR_SCRATCH
$       MOUNT /FOREIGN /NOASSIST 'LIB_DISK' VAXVMSLB4
$       SAY ""
$       SAY "Restoring LIBRARY saveset to library disk."
$       BACKUP /VERIFY 'KIT'[000000]LIBRARY /SAVE_SET 'LIB_DISK' /IMAGE /INITIALIZE
$       DISMOUNT /NOUNLOAD 'LIB_DISK'
$       IF F$GETDVI(LIB_DISK,"MAXBLOCK") .GT. 25000 THEN GOTO TDIF_RESTR_OPT
$       SAY ""
$       SAY "Library disk has less than 25000 blocks, OPTIONAL saveset not restored."
$       GOTO TAILOR_RESTR_DONE
$TDIF_RESTR_OPT:
$       MOUNT /NOASSIST 'LIB_DISK' VAXVMSLB4
$       SAY ""
$       SAY "Restoring OPTIONAL saveset to library disk."
$       BACKUP /REPLACE /VERIFY -
                'KIT'[000000]OPTIONAL /SAVE_SET 'LIB_DISK'[*...]
$TAILOR_RESTR_DONE:
$       SET NOON
$       IF F$GETDVI(KIT,"MNT") THEN DISMOUNT /NOUNLOAD 'KIT'
$       IF F$GETDVI(LIB_DISK,"MNT") THEN DISMOUNT /NOUNLOAD 'LIB_DISK'
$
$MNT_LIB_DISK:
$       LIB_DISK = F$GETDVI(LIB_DISK,"DEVNAM")
$       @SYS$UPDATE:VMSTAILOR MOUNT 'LIB_DISK'
$       GOTO CHANGE_PWDS
$HALT:
$       SET NOON
$       IF .NOT. INSTALLED THEN SAY -
                "   Installation incomplete.  Please restart installation procedure."
$       RUN SYS$SYSTEM:OPCCRASH
$CHANGE_PWDS:
$       SET NOON
$       SET DEFAULT SYS$SYSTEM
$       UAF = "$AUTHORIZE"
$       SAY ""
$       SAY "Now we will ask you for new passwords for the following accounts:"
$       SAY "   SYSTEM, SYSTEST, FIELD"
$       SAY ""
$       SET TERM 'OPA0' /NOECHO
$       T1 = "SYSTEM"
$       T2 = "MANAGER"
$       T3 = "CPWD_10"
$       GOTO CPWD_100
$CPWD_10:
$       T1 = "SYSTEST"
$       T2 = "UETP"
$       T3 = "CPWD_20"
$       GOTO CPWD_100
$CPWD_20:
$       T1 = "FIELD"
$       T2 = "SERVICE"
$       T3 = "CPWD_30"
$       GOTO CPWD_100
$CPWD_30:
$       GOTO CPWD_DONE
$CPWD_100:
$       SAY ""
$CPWD_110:
$       SAY ""
$       READ BOOT$INPUT /END=CPWD_110 /ERR=CPWD_110 -
                /PROMPT="Enter new password for account ''T1': " T4
$       SAY ""
$       T4:='T4'
$       IF (T4 .NES. T2) .AND. (F$LENGTH(T4) .GE. 6) THEN GOTO CPWD_120
$       SAY "''T4' is an invalid password for the ''T1' account."
$       SAY "The password for ''T1' must be at least 6 characters,"
$       SAY "and ''T2' and ''T1' are illegal passwords."
$       GOTO CPWD_100
$CPWD_120:
$CPWD_130:
$       READ BOOT$INPUT /END=CPWD_130 /ERR=CPWD_130 T5 -
        /PROMPT="Re-enter the password for account ''T1' for verification: "
$       SAY ""
$       T5:='T5'
$       IF T5 .EQS. T4 THEN GOTO CPWD_140
$       SAY "Password verification error."
$       GOTO CPWD_100
$CPWD_140:
$       UAF MODIFY 'T1' /PASSWORD='T4'
$       GOTO 'T3'
$CPWD_DONE:
$       SET TERM 'OPA0' /ECHO
$       SAY ""
$       SAY "Creating RIGHTS database file, SYS$SYSTEM:RIGHTSLIST.DAT"
$       SAY "Ignore any ""%SYSTEM-F-DUPIDENT, duplicate identifier"" errors."
$       IF KIT_DOCROOT THEN -
                DEFINE /SYSTEM /EXEC RIGHTSLIST SYS$COMMON:[SYSEXE]RIGHTSLIST
$       RUN SYS$SYSTEM:AUTHORIZE
CREATE/RIGHTS
ADD/ID/USER=*
$       T1 = "/WRITE"
$       IF F$SEARCH("SYS$SYSTEM:MODPARAMS.DAT") .NES. "" THEN T1 = "/APPEND"
$       OPEN 'T1' F1 SYS$SYSTEM:MODPARAMS.DAT
$       IF KIT_DOTLR THEN -
        WRITE F1 "TAILORED=1                    !Generate tailored system"
$       WRITE F1 "SCSSYSTEMID=''SCSSYSTEMID'            ! System ID for the CI"
$       WRITE F1 "SCSNODE=""''SCSNODE'""                ! System node name for CI"
$       IF .NOT. F$GETDVI("PA","EXISTS") THEN -
        WRITE F1 "VAXCLUSTER=0"
$       CLOSE F1
$!      @SYS$UPDATE:VMSTAILOR DISMOUNT
$TELL_ALL:
$       TYPE SYS$INPUT

AUTOGEN computes the SYSGEN parameters for your configuration
and then reboots the system with the new parameters.

After the reboot, you may want to do one or more of the following tasks
(consult the Guide to VAX/VMS System Manager's Reference Manual for
detailed information): 

- Delete SYS$SYSTEM:STARTUP.INS

- DECOMPRESS THE SYSTEM LIBRARIES - For space considerations, many of the system
libraries are shipped in a data compressed format.  If you have enough disk
space, you may decompress them for faster access. Use SYS$UPDATE:LIBDECOMP.COM
to data expand the libraries.  If you choose not to decompress these libraries
there will be a negative impact on the performance of the HELP and LINK
commands.

- APPLY THE MANDATORY UPDATE - The mandatory update for VMS V4.6 must be applied
as soon as possible.   You will be unable to install any optional software 
products until this update has been applied.

$ NO_MANDATORY_UPDATE:
$       IF KIT_DOTLR THEN GOTO TELL_TAILOR
$       IF F$GETSYI("CPU") .EQ. 3 THEN GOTO DO_AUTOGEN
$       IF .NOT. F$GETDVI("PA","EXISTS") THEN GOTO DO_AUTOGEN
$       TYPE SYS$INPUT:

If this system is to be  part of a VAXcluster, you will need to invoke
AUTOGEN with this command:

        @SYS$UPDATE:AUTOGEN SAVPARAMS REBOOT

$       IF KIT_DOCROOT THEN GOTO TELL_CROOT
$       GOTO DO_AUTOGEN
$TELL_TAILOR:
$       TYPE SYS$INPUT:

- Tailor selected tailoring groups from the library disk to the
  system disk.

$       GOTO DO_AUTOGEN
$TELL_CROOT:
$       TYPE SYS$INPUT:

- Create system directory trees for other nodes in your cluster.
  (See the VAX/VMS Guide to VAXclusters for details).

$DO_AUTOGEN:
$       IF F$SEARCH("SYS$SYSDEVICE:[SYSEXE]SYSBOOT.EXE") .EQS. "" THEN -
                SET FILE /ENTER=SYS$SYSDEVICE:[SYSEXE] SYS$SYSTEM:SYSBOOT.EXE;
$       SAY ""
$       SAY "Running AUTOGEN -- Please wait."
$       SAY ""
$
$! AUTOGEN is having some troubles with our symbols.  Since this is so near the
$! end, delete them all.
$
$       Delete/Symbol/All
$       Delete/Symbol/All/Global
$       @SYS$UPDATE:AUTOGEN GETDATA REBOOT INITIAL
$       SAY ""
$       SAY "Abnormal termination of AUTOGEN.  Installation incomplete."
$LOGOUT:
$       SET NOON
$       @SYS$SYSTEM:STARTUP JOBCTL
$       SET LOGINS /INTERACTIVE=10
$       LOGOUT /BRIEF


 $ 


 $ 


 $ 


 $ 


 $ 
Simulation stopped, PC: 80008B1F (BRB 80008B1F)
sim> SET CONSOLE LOG=07.log
Log file closed